[PATCH] [Driver] Enable __float128 support on X86 on Hurd (#160045)
authorBrad Smith <brad@comstyle.com>
Mon, 22 Sep 2025 12:01:00 +0000 (08:01 -0400)
committerSylvestre Ledru <sylvestre@debian.org>
Tue, 16 Dec 2025 11:47:30 +0000 (12:47 +0100)
Gbp-Pq: Topic hurd
Gbp-Pq: Name 47211c4b96e99a3344a71570a99b991c5f5c1c01.patch

clang/lib/Basic/Targets/OSTargets.h
clang/test/CodeGenCXX/float128-declarations.cpp

index c1a68f464e83124aa0d75680dfaf84f4dfb76e0c..6d0dcba0d0e2ad89e03b2b70e4f3e046404c0f3b 100644 (file)
@@ -328,9 +328,21 @@ protected:
       Builder.defineMacro("_REENTRANT");
     if (Opts.CPlusPlus)
       Builder.defineMacro("_GNU_SOURCE");
+    if (this->HasFloat128)
+      Builder.defineMacro("__FLOAT128__");
   }
 public:
-  using OSTargetInfo<Target>::OSTargetInfo;
+  HurdTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts)
+      : OSTargetInfo<Target>(Triple, Opts) {
+    switch (Triple.getArch()) {
+    default:
+      break;
+    case llvm::Triple::x86:
+    case llvm::Triple::x86_64:
+      this->HasFloat128 = true;
+      break;
+    }
+  }
 };
 
 // Linux target
index 84b8f7f33036b594e311db280e2b104e5c5a49af..0f2e82bbfcd43ce2a37761e76bce811c91dcd559 100644 (file)
@@ -6,6 +6,10 @@
 // RUN:   %s -o - | FileCheck %s -check-prefix=CHECK-X86
 // RUN: %clang_cc1 -emit-llvm -triple x86_64-unknown-linux-gnu -std=c++11 \
 // RUN:   %s -o - | FileCheck %s -check-prefix=CHECK-X86
+// RUN: %clang_cc1 -emit-llvm -triple i386-unknown-hurd-gnu -std=c++11 \
+// RUN:   %s -o - | FileCheck %s -check-prefix=CHECK-X86
+// RUN: %clang_cc1 -emit-llvm -triple x86_64-unknown-hurd-gnu -std=c++11 \
+// RUN:   %s -o - | FileCheck %s -check-prefix=CHECK-X86
 // RUN: %clang_cc1 -emit-llvm -triple i386-unknown-freebsd -std=c++11 \
 // RUN:   %s -o - | FileCheck %s -check-prefix=CHECK-X86
 // RUN: %clang_cc1 -emit-llvm -triple amd64-unknown-freebsd -std=c++11 \